#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行，
# 第2行注释表示.py文件本身使用标准UTF-8编码：
print("#############对函数fact(n)编写doctest并执行：#############")


def fact(n):
    '''
    Calculate 1*2*...*n
    >>> fact(1)
    1
    >>> fact(10)
    ?
    >>> fact(-1)
    ?
    '''
    if n < 1:
        raise ValueError()
    if n == 1:
        return 1
    return n * fact(n - 1)


if __name__ == '__main__':
    import doctest

    doctest.testmod()
# doctest非常有用，不但可以用来测试，还可以直接作为示例代码。通过某些文档生成工具，
# 就可以自动把包含doctest的注释提取出来。用户看文档的时候，同时也看到了doctest。
